/**
 * 使用 export enum
 * 1. 导出的 V2NIMLoginServiceImpl 代码 `if (this.loginStatus === V2NIMLoginStatus.V2NIM_LOGIN_STATUS_LOGOUT)`
 * 2. 导出的 dist/enum.js 里带一个 key-value 的对象
 */

/**
 * 使用 export const enum
 * 1. 导出的 V2NIMLoginServiceImpl 代码 `if (this.loginStatus === 0)`
 * 2. 导出的 dist/enum.js 是一个空对象
 */

/**
 * 使用 export const enum 且打开了 tsconfig.json -> compilerOptions -> preserveConstEnums: true
 * 1. 导出的 V2NIMLoginServiceImpl 代码 `if (this.loginStatus === 0)`
 * 2. 导出的 dist/enum.js 里带一个 key-value 的对象
 *
 * 这正是我要的效果, 要导出给开发者便捷使用, 且自身代码被精简了产物体积
 */
export const enum V2NIMLoginStatus {
  /**
   * 未登录
   *
   * 注: 初始状态也是未登录.
   */
  V2NIM_LOGIN_STATUS_LOGOUT = 0,
  /**
   * 已登录
   */
  V2NIM_LOGIN_STATUS_LOGINED = 1,
  /**
   * 登录中
   */
  V2NIM_LOGIN_STATUS_LOGINING = 2,
  /**
   * 处在退避间隔中
   *
   * 注: 这是一个中间状态, SDK 将会在这个状态下等待一段时间后再次尝试登录
   */
  V2NIM_LOGIN_STATUS_UNLOGIN = 3
}
